﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Interfaces;
using Modelo;
using System.Data.SqlClient;
using Datos;
using Datos.Excepciones;
using System.Windows.Forms;
using Datos.FabricaDAO;
using Datos.InterfacesDAO;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Presentador
{
    public class PresentadorConsultaTrafico
    {
        private IConsultaTrafico _consultaTrafico;

        public PresentadorConsultaTrafico(IConsultaTrafico consultaTrafico)
        {
            _consultaTrafico = consultaTrafico;
        }

        //<summary>
        // Método que llena la lista de la ubicacion de cámaras almacenada en la BD
        //</summary> 
        public void ListaUbicacionTR(IList<Ubicacion> ListaUbicacionCamaraTR)
        {
            try
            {
                foreach (Ubicacion ubicacionTR in ListaUbicacionCamaraTR)
                {
                    _consultaTrafico.UbicacionTR.Items.Add(new ListItem(ubicacionTR.NombreUbicacion, ubicacionTR.DNSCamara));
                }
                _consultaTrafico.UbicacionTR.DataBind();
            }
            catch (ExcepcionReporteTrafico e)
            {
                MessageBox.Show(Presentador_Recursos.ErrorSistema + "\n" + Presentador_Recursos.DetallesError + "\n" + e.InnerException, Presentador_Recursos.Error,
                MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,
                MessageBoxOptions.ServiceNotification);
            }
        }

        //<summary>
        // Método que imprime la lista de las ubicaciones de cámara registradas 
        //en la BD
        //</summary> 
        public void ImprimeListaUbicacionTR()
        {
            try
            {
                IDAO_Informacion daoReporte;
                daoReporte = FabricaDAO.DAOInformacion();

                IList<Ubicacion> ubicacionCamarasTR = daoReporte.ListaUbicacionTR();
                ListaUbicacionTR(ubicacionCamarasTR);
            }
            catch (ExcepcionConsultar e)
            {
                MessageBox.Show(Presentador_Recursos.ErrorConsulta + "\n" + Presentador_Recursos.DetallesError + "\n" + e.InnerException, Presentador_Recursos.Error,
                                MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,
                                MessageBoxOptions.ServiceNotification);
            }
            catch (ExcepcionReporteTrafico e)
            {
                MessageBox.Show(Presentador_Recursos.ErrorSistema + "\n" + Presentador_Recursos.DetallesError + "\n" + e.InnerException, Presentador_Recursos.Error,
                MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,
                MessageBoxOptions.ServiceNotification);
            }

        }
    }
}
